package Repositorios;

import ClassesBases.Cliente;
import ClassesBases.Conta;
import Interfaces.InterfaceRepositorioCliente;

public class RepositorioClientesArray implements InterfaceRepositorioCliente {
	private Cliente[] clientes;
	private int indice;
	private final static int tamCache = 100;
	private Cliente cliente;

	@Override
	public void inserir(Cliente c) {
		this.cliente = procurar(c.getCpf());
		if (this.cliente == null) {
			this.clientes[indice] = c;
			this.indice++;
		}
	}

	@Override
	public boolean existe(String num) {
		this.cliente = procurar(num);
		if (this.cliente != null) {
			return true;
		}
		return false;
	}

	@Override
	public void atualizar(Cliente c) {
		this.cliente = procurar(c.getCpf());
		if (this.cliente != null) {
			this.cliente = c;
		}
	}

	@Override
	public Cliente procurar(String num) {
		for (Cliente cliente : clientes) {
			if (cliente.getCpf().equals(num)) {
				return cliente;
			}
		}
		return null;
	}

	@Override
	public void remover(String num) {
		this.cliente = procurar(num);
		if (this.cliente != null) {
			int iTemp = acharIndice(this.cliente);
			while ((clientes[iTemp+1]) != null) {
				clientes[iTemp] = clientes [iTemp+1];
				iTemp++;
			}
			clientes[iTemp] = null;
			this.indice--;
		}
	}
	
	public int acharIndice (Cliente c){
		for (int i = 0; i < clientes.length; i++) {
			if (c.equals(clientes[i])) {
				return i;
			}
		}
		return -1;
	}

}
